Docker 镜像的构建与推送

下列代码展示了完整的 Docker 镜像构建、标记和推送到 Docker Hub 的流程,包括单平台和多平台构建。下面我将详细解释每个步骤:

登录 Docker (docker login)

1
docker login
  • 作用:登录到 Docker Hub 或其他容器注册表
  • 执行后会提示输入用户名和密码
  • 登录后才能推送镜像到你的 Docker Hub 账户

构建镜像 (docker build)

1
docker build -t jrebel-license-server:1.0.0 .
  • docker build: 构建 Docker 镜像的命令
  • -t jrebel-license-server:1.0.0: 为镜像指定名称和标签
    • jrebel-license-server 是镜像名称
    • 1.0.0 是版本标签
  • .: 表示使用当前目录下的 Dockerfile 和上下文

标记镜像 (docker tag)

1
docker tag jrebel-license-server:1.0.0 ieaphy/jrebel-license-server:1.0.0
  • docker tag: 为镜像创建新标签
  • 格式必须为 <DockerHub用户名>/<镜像名>:<标签>
  • ieaphy/ 前缀表示这个镜像将推送到 ieaphy 用户的 Docker Hub 仓库

推送镜像 (docker push)

1
docker push ieaphy/jrebel-license-server:1.0.0
  • docker push: 将本地镜像推送到远程仓库
  • 这里推送到 Docker Hub 的 ieaphy 用户下的 jrebel-license-server 仓库
  • 标签为 1.0.0

多平台构建与推送 (docker buildx)

1
docker buildx build --platform linux/arm64 -t ieaphy/jrebel-license-server:1.0.0 --push .
  • docker buildx: Docker 的扩展构建工具,支持多平台构建
  • --platform linux/arm64: 指定构建目标平台为 ARM64 架构
  • --push: 构建完成后直接推送到仓库,不需要单独执行 push 命令
  • .: 使用当前目录作为构建上下文

完整流程说明

  1. 首先登录 Docker Hub
  2. 在本地构建镜像并打上初始标签
  3. 为镜像添加符合 Docker Hub 规范的标签
  4. 将镜像推送到 Docker Hub
  5. 使用 buildx 工具为不同平台(这里是 ARM64)构建并直接推送

注意事项

  • 执行这些命令前需要确保:
    • Docker 已安装并运行
    • 有 Docker Hub 账户(或其他容器注册表账户)
    • 对目标仓库有推送权限
  • 多平台构建需要:
    • 启用 Docker 的 buildx 功能
    • 可能需要配置多平台构建环境
  • 镜像名称中的用户名(ieaphy)需要替换为你自己的 Docker Hub 用户名
0%